# 编译器
FC = gfortran
# 编译选项
FLAGS = -O2

# 输出文件
TARGET = hello

# 源文件和对象文件
SOURCES = module1.f90 module2.f90 hello.f90
OBJECTS = module1.o module2.o hello.o

# 生成目标
$(TARGET): $(OBJECTS)
	$(FC) $(FLAGS) -o $(TARGET) $(OBJECTS)

# 编译模块2（需要先于module1编译）
module2.o: module2.f90
	$(FC) $(FLAGS) -c module2.f90

# 编译模块1，依赖于module2
module1.o: module1.f90 module2.o
	$(FC) $(FLAGS) -c module1.f90

# 编译主程序，依赖于module1和module2
hello.o: hello.f90 module1.o module2.o
	$(FC) $(FLAGS) -c hello.f90

# 清理（Windows环境下使用del命令）
clean:
	del /Q *.o *.mod $(TARGET)
